package com.gxc.hash;

import java.util.*;

/**
 * 一贫如洗的樵夫阿里巴巴在去砍柴的路上，无意中发现了强盗集团的藏宝地，藏宝地有编号从0-N的箱子，每个箱子上面贴有一个数字。
 *
 * 阿里巴巴念出一个咒语数字，查看宝箱是否存在两个不同箱子，这两个箱子上贴的数字相同，同时这两个箱了的编号之差的绝对值小于等于咒语数字，
 * 如果存在这样的一对宝箱，请返回最先找到的那对宝箱左边箱子的编号，如果不存在则返回-1.
 *
 * 输入描述
 * 第一行输入一个数字字串，数字之间使用逗号分隔，例如: 1,2,3,1
 *
 * 1 ≤ 字串中数字个数 ≤ 100000
 * -100000 ≤ 每个数字值 ≤ 100000
 * 第二行输入咒语数字，例如: 3   1 ≤ 咒语数字  ≤ 100000
 * 输出描述
 * 存在这样的一对宝箱，请返回最先找到的那对宝箱左边箱子的编号，如果不存在则返回-1
 *
 * 解法：
 * 使用哈希表记录某个数字上次出现的位置。
 * 遍历输入数组，首次出现当前数字位置为current,上一次出现位置lastPosition, current - lastPosition <= 咒语数字时， 退出循环，结果就为lastPosition.
 */
public class RobberBox2 {

    public static void main2(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String numString = scanner.nextLine();
        Integer num = Integer.parseInt(scanner.nextLine());

        Map<String, Integer> map = new HashMap<>();
        String[] split = numString.split(",");
        if (split.length < 2) {
            System.out.println("-1");
            return;
        }
        int i = 0;
        int res = -1;
        for (; i < split.length; i++) {
            Integer lastP = map.get(split[i]);
            if (lastP != null) {
                if (i - lastP <= num) {
                    res = lastP+1;
                    break;
                }
            }
            map.put(split[i], i);
        }
        System.out.println(res);
    }

    public static List<String> split(String str, String delimiter) {
        return Arrays.asList(str.split(delimiter));
    }

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String s = scanner.nextLine(); // 读取输入的整行数据
        int num = scanner.nextInt();   // 读取整数
        scanner.close();

        List<String> ans = split(s, ","); // 按逗号分割字符串

        // 记录当前数字上次出现的位置
        Map<String, Integer> lastPositionMap = new HashMap<>();
        int res = -1;
        int n = ans.size();

        for (int i = 0; i < n; i++) {
            String tmp = ans.get(i);

            if (lastPositionMap.containsKey(tmp)) {
                int lastIndex = lastPositionMap.get(tmp);
                if (i - lastIndex <= num) {
                    res = lastIndex+1;
                    break;
                }
            }
            lastPositionMap.put(tmp, i);
        }

        System.out.println(res);
    }
}
